﻿using AbstractProducts;

namespace SmartAssembly
{
    public sealed class ProcessedReport
    {
        private readonly Report m_Report;
        private readonly ProductBuildRef m_ProductBuildRef;


        public ProcessedReport(Report report)
            : this(report, new ProductBuildRef(report.OriginalUnchangedReportProductRef, report.BuildVersion))
        {
        }

        private ProcessedReport(Report report, ProductBuildRef productBuildRef)
        {
            m_Report = report;
            m_ProductBuildRef = productBuildRef;
        }

        public ProcessedReport Blame(ProductBuildRef productBuildRef)
        {
            return new ProcessedReport(m_Report, productBuildRef);
        }


        public Report Report
        {
            get { return m_Report; }
        }

        public ProductBuildRef ProductBuildRef
        {
            get { return m_ProductBuildRef; }
        }
    }
}
